#ifndef __CG_BOTS_HUD_H__
#define __CG_BOTS_HUD_H__

///////////////////////////////////////////////////////////////////////////////////////////////////////////
// Constant

#define BOTS_HUD_PANEL_WIDTH			48
#define BOTS_HUD_PANEL_MARGIN			4
#define BOTS_HUD_ICON_SIZE				SMALLCHAR_HEIGHT

#define BOTS_HUD_FIELD_WIDTH			14
#define BOTS_HUD_FIELD_HEIGHT			21
#define BOTS_HUD_FIELD_MARGIN			4

#define BOTS_HUD_FIELD_BIG_WIDTH		32
#define BOTS_HUD_FIELD_BIG_HEIGHT		48
#define BOTS_HUD_BIG_ICONSIZE			48


#define	BOTS_PANEL_AMMO_WEAPON			0
#define	BOTS_PANEL_AMMO_SLOTS			1
#define	BOTS_PANEL_AMMO_AMMO			2


///////////////////////////////////////////////////////////////////////////////////////////////////////////
// Static crap
extern float colors[4][4];
extern int iCLASSTYPE,iLEVEL;
extern const char *info;
///////////////////////////////////////////////////////////////////////////////////////////////////////////
// Structures
typedef struct 	{
	int			
		iData, // The value
		iTime; // For effects
	qboolean	bModified;
} stData_t; 

///////////////////////////////////////////////////////////////////////////////////////////////////////////
// Prototypes

//ID
float CG_DrawPowerups( float y );
int CG_DrawLagometer( int y );
float CG_DrawScores( float y );
void CG_DrawChar( int x, int y, int width, int height, int ch );

//Me :)
void BOTS_registerHUDicons();
float BOTS_newDrawClassData(float y, int iClass, int iLevel, int iTeam);

qhandle_t BOTS_HUD_registerClassIcon(int iClass, int iLevel, int iTeam);
vec4_t *BOTS_HUD_getTeamColor(int iTeam);

void updateData(stData_t *s, int value);

void myCG_DrawPic( float x, float y, float width, float height, qhandle_t hShader );
void BOTS_HUD_drawReadySignCentered(int x, int y, int totalwidth);
void BOTS_HUD_drawKeySignCentered(int x, int y, int totalwidth,int bump);

float BOTS_HUD_drawIcon(float y, int iTeam, qhandle_t shaderLabel, qhandle_t shaderIcon, qboolean bKludge, qboolean bBlink);
float BOTS_HUD_drawSwitch(float y, int iTeam, stData_t *s, qhandle_t shader);
float BOTS_HUD_drawWeaponMode(float y, int iTeam, stData_t *s,qhandle_t shader);
int BOTS_HUD_drawNumber(int x, int y, int w, int h, int iNumber, int iMaxChar);
float BOTS_HUD_drawTimer(float y, int iTeam, stData_t *s,qhandle_t shader);
float BOTS_HUD_drawKey(float y, int iTeam, stData_t *s,qhandle_t shader);
float BOTS_HUD_drawLaser(float y, int iTeam, stData_t *laserS,stData_t *laserT, qboolean bPulse);
float BOTS_HUD_drawClassText(float y, int iClass, int iLevel, int iTeam);
float BOTS_HUD_drawClassIcon(float y, int size, int iClass, int iLevel, int iTeam);
float BOTS_HUD_drawClassInfo(int y, int iClient, int iClass);

void BOTS_DrawField (int x, int y, int width, int value);
void BOTS_DrawFieldBig(int x, int y, int width, int value, vec4_t hcolor);
float BOTS_newDraw_Health(int y);
float BOTS_newDraw_Armor(int y);
void BOTS_DrawStatusBarHead( float x );
int BOTS_DrawPickupItem( int y );
void BOTS_DrawStatusBarFlag( float x, float y, int team ) ;



///////////////////////////////////////////////////////////////////////////////////////////////////////////
// Generated code, don't modify ;)
void BOTS_registerHUDiconsother(qhandle_t *p);

// THIS IS SOME AUTOMATICALLY GENERATED CODE, DON'T MODIFY PLEASE
// ./codegen.pl: Sat Sep 23 05:22:23 CEST 2000

typedef enum {
	reserved0,
	reserved1,
	reserved2,
	reserved3,
	reserved4,
	reserved5,
	reserved6,
	reserved7,
	reserved8,
	reserved9,
	number_0,
	number_1,
	number_2,
	number_3,
	number_4,
	number_5,
	number_6,
	number_7,
	number_8,
	number_9,
	grenade_proxy,
	grenade_decoy,
	grenade_nuke,
	grenade_flash,
	grenade_tele,
	generic_ready,
	generic_normal,
	generic_split,
	generic_split1,
	generic_split2,
	generic_split3,
	generic_key,
	generic_minus,
	generic_chevron1,
	generic_chevron2,
	generic_captain,
	generic_bodyguard,
	generic_sniper,
	generic_soldier,
	generic_berzerker,
	generic_infiltrator,
	generic_kamikazee,
	generic_nurse,
	generic_scientist,
	kami_cluster,
	kami_detmode,
	kami_autorewire,
	kami_longrange,
	kami_sticky,
	soldier_conquer,
	soldier_tag,
	soldier_guided,
	nurse_poison,
	infiltrator_disguise,
	infiltrator_steal,
	sniper_visibility,
	sniper_sight,
	sniper_cloakwalk,
	bodyguard_laser,
	bodyguard_pulse,
	bodyguard_protection,
	bodyguard_decoy,
	berzerker_autoquad,
	berzerker_autocharge,
	berzerker_parasites,
	captain_warcry,
	MAX_HUD_ICONS_OTHER
} eHUD_ICONS_OTHER;


#endif
